package com.hik.token;
import java.math.BigInteger;
import java.security.MessageDigest;
import	java.util.Date;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;

public class HikToken {
    //调用方首先要向平台管理员获取 AppKey 和 AppSecurity
    //调用方每次请求都需要带上当前时间戳参数 time，这里的时间戳是指 UTC 时间
    // 1970 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)
    // 起至现在的总毫秒数
    public static String getMD5String(String str) {
        try {
            // 生成一个MD5加密计算摘要
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 计算md5函数
            md.update(str.getBytes());
            // digest()最后确定返回md5 hash值，返回值为8位字符串。因为md5 hash值是16位的hex值，实际上就是8位的字符
            // BigInteger函数则将8位的字符串转换成16位hex值，用字符串来表示；得到字符串形式的hash值
            //一个byte是八位二进制，也就是2位十六进制字符（2的8次方等于16的2次方）
            return new BigInteger(1, md.digest()).toString(16);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    public  String getToken(String AppSecurity,String url,String gp){
        Date date = new Date();
        long time=date.getTime();
        String str =gp+url +time+AppSecurity;
        String AppToken=time+getMD5String(str);
        return AppToken;
    }


}
